Socket
Socket
Sign inDemoInstall

@ledgerhq/errors

Package Overview
Dependencies
0
Maintainers
0
Versions
221
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ledgerhq/errors


Version published
Weekly downloads
139K
decreased by-0.04%
Maintainers
0
Created
Weekly downloads
 

Package description

What is @ledgerhq/errors?

@ledgerhq/errors is an npm package designed to handle and manage errors specifically for Ledger hardware wallet applications. It provides a structured way to define, throw, and catch errors, making error handling more consistent and easier to manage.

What are @ledgerhq/errors's main functionalities?

Custom Error Definitions

This feature allows you to define custom error classes that extend the built-in TransportError class. This makes it easier to create specific error types for different scenarios.

const { TransportError, StatusCodes } = require('@ledgerhq/errors');

class MyCustomError extends TransportError {
  constructor(message) {
    super(message, StatusCodes.UNKNOWN_ERROR);
    this.name = 'MyCustomError';
  }
}

try {
  throw new MyCustomError('Something went wrong');
} catch (error) {
  console.error(error.name); // MyCustomError
  console.error(error.message); // Something went wrong
  console.error(error.statusCode); // UNKNOWN_ERROR
}

Error Handling

This feature demonstrates how to handle errors thrown by operations, specifically checking if the error is an instance of TransportError and logging the appropriate message and status code.

const { TransportError, StatusCodes } = require('@ledgerhq/errors');

function performOperation() {
  throw new TransportError('Operation failed', StatusCodes.CONDITIONS_OF_USE_NOT_SATISFIED);
}

try {
  performOperation();
} catch (error) {
  if (error instanceof TransportError) {
    console.error(`Error: ${error.message}, Status Code: ${error.statusCode}`);
  } else {
    console.error('An unknown error occurred');
  }
}

Predefined Status Codes

The package provides a set of predefined status codes that can be used to standardize error handling across different parts of your application.

const { StatusCodes } = require('@ledgerhq/errors');

console.log(StatusCodes.CONDITIONS_OF_USE_NOT_SATISFIED); // 0x6985
console.log(StatusCodes.INS_NOT_SUPPORTED); // 0x6D00

Other packages similar to @ledgerhq/errors

Readme

Source

@ledgerhq/errors

Hodl all possible errors of Ledger (live, ledgerjs) so we can deal with them in a unified way (share between libraries, instanceof them,...)

API

Table of Contents
  • HwTransportErrorType
  • HwTransportError
  • TransportError
  • TransportStatusError

HwTransportErrorType

Type of a Transport error used to represent all equivalent errors coming from all possible implementation of Transport

HwTransportError

Extends Error

Represents an error coming from the usage of any Transport implementation.

Needed to map a specific implementation error into an error that can be managed by any code unaware of the specific Transport implementation that was used.

Parameters

TransportError

Extends Error

TransportError is used for any generic transport errors. e.g. Error thrown when data received by exchanges are incorrect or if exchanged failed to communicate with the device for various reason.

Parameters

TransportStatusError

Extends Error

Error thrown when a device returned a non success status. the error.statusCode is one of the StatusCodes exported by this library.

Parameters
  • statusCode number The error status code coming from a Transport implementation

  • options {canBeMappedToChildError: boolean?} containing:* canBeMappedToChildError: enable the mapping of TransportStatusError to an error extending/inheriting from it . Ex: LockedDeviceError. Default to true. (optional, default {})

    • options.canBeMappedToChildError (optional, default true)

Keywords

FAQs

Last updated on 28 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc